home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Alles Voor Internet / Tout Pour Internet
/
alles voor internet.iso
/
MacInternet™
/
Telnet
/
NCSA
/
tn3270 2.4d7 source
/
tn3270
/
tn3270funcs.h
< prev
next >
Wrap
Text File
|
1992-04-17
|
22KB
|
640 lines
/*
* tn3270 for the Macintosh source code
* Brown University Computing and Information Services
* Version 2.4d7 April, 1992
* Copyright (c) 1988, 1989, 1990, 1991, 1992 by Brown University and by
* Peter John DiCamillo.
*
* Permission is granted to any individual or institution to use, copy,
* or redistribute the binary version of this software and its
* documentation provided this notice and the copyright notices are
* retained. Permission is granted to any individual or non-profit
* institution to use, copy, modify, or redistribute the source files
* of this software provided this notice and the copyright notices are
* retained. This software may not be distributed for profit, either
* in original form or in derivative works, nor can the source be
* distributed to other than an individual or a non-profit institution.
* Any individual or group interested in seeing and/or using these
* source files but who are prevented from doing so by the above
* constraints should contact Don Wolfe, Assistant Vice-President for
* Computer Systems at Brown University, (401) 863-7250, for possible
* software licensing of the source developed at Brown.
*
* Brown University and Peter John DiCamillo make no representations
* about the suitability of this software for any purpose.
*
* BROWN UNIVERSITY AND PETER JOHN DICAMILLO GIVE NO WARRANTY, EITHER
* EXPRESS OR IMPLIED, FOR THE PROGRAM AND/OR DOCUMENTATION PROVIDED,
* INCLUDING, WITHOUT LIMITATION, WARRANTY OF MERCHANTABILITY AND
* WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE.
*
*/
/* functions defined in api.c: */
void apiregister(char session, cnr *cp);
void sppcregister(char session, cnr *cp);
void ppcregister(char session, cnr *cp);
pascal void informproc(PPCParamBlockPtr pb);
pascal void accproc(PPCParamBlockPtr pb);
pascal void readproc(PPCParamBlockPtr pb);
pascal void disposproc(PPCParamBlockPtr pb);
void deletesession(long refnum);
void apideregister(char session, cnr *cp);
void sppcderegister(char session, cnr *cp);
void ppcderegister(char session, cnr *cp);
void apinewmsg(void);
void smgrmsg(void);
void senderr(short myref, short code);
void sendcap(void);
void getsesscount(short *pend, short *curr);
void sendvers(void);
void sendid(void);
void apiopensess(void);
void apiopenerr(short code, cnr *cp);
void apiopenresp(short code, cnr *cp);
void sendconnstat(void);
short getconnstat(unsigned long openid);
OSErr apisend(short myRefNum, short toRefNum,
unsigned long replyId, Handle theMessage,
unsigned short msgLength, unsigned long *msgId);
pascal void writeproc(PPCParamBlockPtr pb);
void sessmsg(void);
void sendchar(void);
void sessclose(cnr *cp);
void closenotify(void);
void closeresponse(short code, cnr *cp);
void getbuffers(void);
void writenotify(void);
void writeresponse(unsigned char ccwop, cnr *cp);
void senddatareq(void);
void apisendser(unsigned char c, cnr *cp);
void sendlocal(void);
/* functions defined in apistg.c: */
void initparamblocks(void);
void initclientrecs(void);
void initdatablocks(void);
void endparamblocks(void);
void endclientrecs(void);
void enddatablocks(void);
void endqueue(queueinfo *qp);
void addparamblocks(void);
void addclientrecs(void);
void adddatablocks(void);
void addqueue(queueinfo *qp);
OSErr extendqueue(queueinfo *qp);
PPCParamBlockPtr newparamblock(void);
clientinfo * newclientrec(void);
datainfo * newdatablock(void);
qctl * getnew(queueinfo *qp);
void disposparamblock(PPCParamBlockPtr p);
void disposclientrec(clientinfo *p);
void disposdatarec(datainfo *p);
void disposelem(unsigned char *s, queueinfo *qp);
/* functions defined in attnmenu.c: */
pascal void attnmenu(short msg, MenuHandle mhdl, Rect *mr,
Point hit, short *which);
pascal void attndlg(WindowPtr dlgwindow, short item);
pascal void colorbox(WindowPtr wp, short inum);
/* functions defined in bgproc.a: */
ProcPtr bgproc(void);
void sndproc(SndChannelPtr chan, SndCommand cmd);
void nmproc(NMRecPtr nmReqPtr);
long GetA5(void);
/* functions defined in cdialog.c: */
void colordlg(cnr *cp);
void getclr(DialogPtr dlgptr, unsigned char *cname,
RGBColor *cin, cnr *cp);
void defcbox(DialogPtr dlgptr, cnr *cp);
void updcolors(DialogPtr dlgptr);
/* functions defined in crcf.c: */
int crcf(unsigned char *str, short len, unsigned short initchk);
void gentab(unsigned short *array);
/* functions defined in dialogs.c: */
void aboutdlg(void);
void stginfo(cnr *cp);
void attrdlg(cnr *cp);
void hostcfdlg(void);
void sethostcf(DialogPtr dlgptr, unsigned char *hname,
unsigned char *wtitle, char sdefault);
void specdlg(void);
void setspec(DialogPtr dlgptr, unsigned char *hname, char sflg,
unsigned char timeout, unsigned char retries,
char debug);
OSErr hostdlg(unsigned char *s);
void featdlg(cnr *cp);
void setfeat(DialogPtr dlgptr, char d_insreset, char d_impnull,
char d_repnull, char d_digitpfk, char d_ext3270,
char d_std_brack);
short savedlg(char update, cnr *cp);
void clickdlg(cnr *cp);
void stgalert(unsigned char *kind, unsigned char *routine,
long amount);
void seterr(void);
void dbdlg(unsigned char *string);
void srvdlg(char flag);
void note_err(short code, cnr *cp);
void stoperr(short code, cnr *cp);
void stopterr(unsigned char *text, cnr *cp);
OSErr notifymsg(unsigned char *msg);
void nmend(NMRecPtr nmReqPtr);
pascal Boolean DlgFilter(DialogPtr dlg, EventRecord *eventptr,
short *itemptr);
pascal Boolean fmtDlgFilter(DialogPtr dlg, EventRecord *eventptr,
short *itemptr);
void arrowinc(DialogPtr dlg, short item, Handle gitem, Rect *increct,
Rect *decrect, short min, short max);
pascal Boolean ListDlgFilter(DialogPtr dlg, EventRecord *eventptr,
short *itemptr);
void xfdlg(short code, unsigned char *msg1, unsigned char *msg2,
unsigned char *msg3, unsigned char *msg4, cnr *cp);
void cf_fmtdlg(void);
setcffmt(DialogPtr dlgptr, short itemHit, short dfltptsize, char windmax,
short altptsize, short altrows, short altcols, char customflag,
short custrows, short custcols, char savewpos);
pascal void arrowproc(WindowPtr dlgwindow, short item);
void fmtdlg(cnr *cp);
void setfmt(DialogPtr dlgptr, short dfltptsize, char windmax,
short altptsize, char savewpos);
void miscdlg(cnr *cp);
void dlgplaysound(unsigned char *sndname);
pascal void listproc(DialogPtr dialog, short itemNo);
pascal void misctext(WindowPtr wp, short inum);
OSErr dlgnewmap(GrafPtr wp, Rect *box);
void getsndinfo(Handle theResource, short *theID, ResType *theType,
unsigned char *name);
Handle getsndresource(unsigned char *name);
void crsetdlg(cnr *cp);
void psdlg(cnr *cp);
void conndlg(cnr *cp);
void msgappend(unsigned char *buffer, short length, unsigned char *new);
OSErr getapcr(OSType *cr);
void cf_featdlg(void);
showcffeat(DialogPtr dlgptr, unsigned char *cvs,
char ext, char graphics, char color);
void setit(short item, DialogPtr dlgptr, short code);
void setactive(short item, DialogPtr dlgptr, char flag);
short wants_to_quit(cnr *cp);
void dFullAlt(short kShort, cnr *cp);
void settext(DialogPtr dlgptr, short item, unsigned char *text);
void ctrwindow(GrafPtr wp);
void ctralrt(short a);
void framedflt(DialogPtr dlgptr);
void OutlineButton(ControlHandle button);
void arrowcursor(void);
/* functions defined in grafterm.c: */
void macinit(void);
OSErr ioinit(void);
void hnd_init(void);
void newlogin(char apiopen,
char fileopen, unsigned char *fname, short vnum,
unsigned char oldformat);
void removeconnection(cnr *cp);
void login_init(cnr *cp);
void sessionlgout(char keep, cnr *cp);
OSErr createwindow(cnr *cp);
void removewindow(cnr *cp);
void removebitmaps(cnr *cp);
void restorectab(void);
OSErr newmode(char mode, char create, cnr *cp);
OSErr alignbitmaps(cnr *cp);
void setmode(short dsprows, short dspcols,
short ptsize, short wmax, cnr *cp);
void newdepth(cnr *cp);
void ioend(void);
void macend(void);
void hndmac(void);
void dozoom(WindowPtr wp, short code);
void kbdevent(EventRecord *myEvent);
short zoomstate(cnr *cp);
cnr *front_cp(void);
char mywindow(GrafPtr whichWindow, cnr** cpp);
char myxfwindow(GrafPtr whichWindow, cnr** cpp);
void chkpx(cnr *cp);
void fixcolors(PaletteHandle p, cnr *cp);
void mapcolor(RGBColor *in, RGBColor *out, cnr *cp);
void actualcolor(RGBColor *in, RGBColor *out, cnr *cp);
void updevent(GrafPtr msgptr);
void mkPix(GrafPtr gptr, unsigned char **mptr, Rect *b_rect,
GDHandle gdev, cnr *cp);
Ptr myNewPtr(Size s, cnr *cp);
int updCTab(cnr *cp);
int newCTab(cnr *cp);
void rmPix(GrafPtr gptr, Ptr mptr);
void newinvbw(cnr *cp);
void newbackcolor(cnr *cp);
void setgdev(cnr *cp);
void resetgdev(void);
void adjfmt(char *changed, char *windmax, short *dfltptsize,
short *altptsize, short *altrows, short *altcols);
void newstdfont(short f, cnr *cp);
void updwindpos(cnr *cp);
/* functions defined in hndkbd.c: */
void hndkbd(unsigned char chr, unsigned char shift, cnr *cp);
void datakey(unsigned char val, unsigned char geflag,
char paste, cnr *cp);
void attnkey(unsigned char val, char paste, cnr *cp);
void rdmcmd(unsigned char val, cnr *cp);
void rdmacmd(unsigned char val, cnr *cp);
void funckey(unsigned char val, char paste, cnr *cp);
short getattr(short offset, cnr *cp);
short firstattr(cnr *cp);
void rdmod(char lp_read, cnr *cp);
void rdbuff(cnr *cp);
void addeor(cnr *cp);
short cinsert(cnr *cp);
void nullreplace(cnr *cp);
void senddata(char lockflag, cnr *cp);
void kerr(short code, cnr *cp);
void kbnew(unsigned char chr, cnr *cp);
void ebcaddr(unsigned char *buf, unsigned short addr, cnr *cp);
/* functions defined in menu.c: */
void menu_upd(void);
void docommand(long mResult, char append);
void clickattn(short itm, cnr *cp);
void appl_menu(void);
void enable_menu_item(MenuHandle theMenu,
short item,
char enableflag);
void new_connmenu(void);
Boolean sessnamecomp(cnr *a, cnr *b);
/* functions defined in prt.c: */
void pgsetup(void);
void prscreen(cnr *cp);
void prtdraw(cnr *cp);
void setdoctitle(unsigned char *s);
/* functions defined in saio.c */
OSErr sa_init(void);
void sadflthost(unsigned char *s);
long sagetrsrv(cnr *cp);
void salgin(cnr *cp);
void sendinit(unsigned char wcc, cnr *cp);
void salgout(char keep, cnr *cp);
void sa_end(void);
void sawrite(unsigned char *dptr, short dsize, cnr *cp);
void sain(unsigned char asc, unsigned char chr,
unsigned char shift, cnr *cp);
void sa_reset(cnr *cp);
void saevent(void);
void sadata(unsigned char *sptr, short slen,
char init, char end, cnr *cp);
void sakbin(unsigned char asc, unsigned char chr,
unsigned char shift, cnr *cp);
/* functions defined in scrap.c: */
OSErr newscrap(cnr *cp);
void removescrap(void);
void importscrap(void);
void exportscrap(char endflag);
void doexport(void);
void expfield(scrapline *sp, short offset, short len);
unsigned char alatrans(unsigned char dc, unsigned char chr);
void expbreak(void);
void expendline(void);
void myPutScrap(short len, unsigned char *data);
void scrapcut(char append, cnr *cp);
void scrapcopy(char append, cnr *cp);
void scrappaste(cnr *cp);
void scrapclear(cnr *cp);
void scrapcopytable(char append, cnr *cp);
void scrapcopytext(char append, cnr *cp);
void scopy(char append, cnr *cp);
void dselchar(unsigned short start, unsigned short attroff, cnr *cp);
void selclear(unsigned char fillchar, cnr *cp);
/* functions defined in serscrn.c: */
void putscr(unsigned char *s, short slen, char wr, cnr *cp);
void scrollscrn(cnr *cp);
void revscroll(cnr *cp);
void putsrv(unsigned char *s, short slen, char inp, cnr *cp);
void srvnewchar(unsigned char c, cnr *cp);
void srvtext(unsigned char *text, unsigned short *attr,
short len, cnr *cp);
int srvproc(unsigned char *text, unsigned short *attr,
short len, cnr *cp);
void srvscroll(cnr *cp);
void srvswitch(cnr *cp);
/* functions defined in serstub.c: */
OSErr ser_init(void);
long sergetrsrv(cnr *cp);
void serattn(cnr *cp);
void ser_end(void);
void serout(unsigned char c);
void serevent(void);
void serlgin(cnr *cp);
void serin(unsigned char c, unsigned char shift, cnr *cp);
void sersrvlgout(char keep);
void serdflthost(unsigned char *s);
void serlgout(char keep, cnr *cp);
void sersendinit(char init);
/* functions defined in settings.c: */
void read_settings(char initflg, cnr *cp);
pascal short sfgethook(short MySFitem, DialogPtr theDialog);
void use_settings(unsigned char *fname, short vnum, cnr *cp);
short get_settings(unsigned char * fname, short vnum,
unsigned char *oldformat);
short chrval(unsigned char chr);
short setval(unsigned char * nameptr,
short namelen,
unsigned char * valueptr,
short valuelen);
OSErr alloc_copy(unsigned char **dest,
unsigned char *source,
short len);
short ptsizeproc(void *resultptr);
short rowproc(void *resultptr);
short colproc(void *resultptr);
short max2proc(void *resultptr);
short pfproc(void *resultptr);
OSErr read_old_format(char *fname, short vnum);
void copyrdstr(unsigned char *dest, unsigned char *source);
void settings_update(settings_list *sl,
unsigned char *wtitle,
unsigned char *kybdname,
unsigned char *nlname,
unsigned char *sndname, cnr* cp);
void write_settings(cnr *cp);
short new_settings(cnr *cp);
OSErr fsrdopen(unsigned char *fname, short vref, short *fref);
void copyconfig(settings_list *sl, unsigned char *hostname,
unsigned char *wtitle);
/* functions defined in switcher.c: */
void sw_suspend(long message);
void sw_resume(long message);
Boolean sw_active(void);
WorldTable * get_world(void);
void sw_proc(void);
/* functions defined in tcpevent.c: */
void tcpevent(void);
void myStask(void);
cnr *port_to_cp(int port);
void ftpnewstat(void);
/* functions defined in tcpio.c: */
OSErr tcp_init(void);
int initipnum(int dummy);
short getipinfo(void);
OSErr promptip(short ro);
void updhostrsc(unsigned char *s);
void showdrv(void);
void calcmask(long *mask);
void tcpdflthost(unsigned char *s);
long tcpgetrsrv(cnr *cp);
void tcplgin(cnr *cp);
void tcplgout(char keep, cnr *cp);
void tcp_end(void);
void tcpwrite(unsigned char *dptr, short dsize, cnr *cp);
void tcpin(unsigned char asc, unsigned char chr,
unsigned char shift, cnr *cp);
void tcp_reset(cnr *cp);
void ATuld(void);
OSErr NBld(void);
void NBuld(void);
OSErr nblookup(unsigned char *object, unsigned char *type,
unsigned char *zone, NTElement *result, short *count);
OSErr atsend(AddrBlock *ablock, unsigned char *sendaddr,
short sendlen, BDSPtr retbds);
OSErr kpdynamip(long *ipnum);
OSErr kpregister(unsigned char *ipnum);
void kpunregister(void);
OSErr openatdrv(void);
int isHFS(void);
cvtmask(long mask, unsigned char *s);
Boolean decodeIPnum(unsigned char *s, unsigned char *myipnum);
void ShowAllErrors(void);
void NetError(int code);
void OtherError(unsigned char *mess1, unsigned char *mess2);
void tcpinfo(cnr *cp);
int tcp_session(cnr *cp);
short rdportnum(cnr *cp);
OSErr getstr(unsigned char *s, short lim, short num);
void sysvol(short reset);
void tcpquit(OSErr rc);
void quit(void);
void DisplayMacBinary(void);
void checkhostfile(void);
void userftpd(int code, int myport);
void ftpmess(unsigned char *s);
/* functions defined in telnet.c: */
void telrcv(register unsigned char *sbp,
register short scc, cnr *cp);
void printoption(unsigned char *direction, unsigned char *fmt,
short option, short what);
void willoption(short option, short reply, cnr *cp);
void wontoption(short option, short reply, cnr *cp);
void dooption(short option, cnr *cp);
void suboption(cnr *cp);
void SetIn3270(cnr *cp);
void printsub(unsigned char *direction,
unsigned char *pointer,
short length);
void tcpdata(unsigned char *sptr, short slen,
char init, char end, cnr *cp);
void tcpkbin(unsigned char asc, unsigned char chr,
unsigned char shift, cnr *cp);
/* functions defined in util.c: */
void tcpmemcpy(unsigned char *dest, unsigned char *src,
short *len, char tcpflg);
void GetGlobalRect(WindowPtr window, Rect *globalRect);
void defxtab(unsigned char **xtabinfo, unsigned char *xtab);
void getdeskrect(Rect *r);
unsigned char getmodel(short rows, short cols, cnr *cp);
void adjmove(Rect *wr);
GDHandle myGetMaxDevice(Rect *globalRect);
void def_sessname(cnr *cp);
void get_sessname(unsigned char *sname, cnr *cp);
short cfmapsize(char which, char color);
writeinfo *new_writeinfo(cnr *cp);
void show_writeinfo(cnr *cp);
void putln (unsigned char *s);
OSErr seropen(void);
OSErr serchr(unsigned char c);
void dbgdump(unsigned char *msg, unsigned char *data, short len);
void dbgwait(void);
/* functions defined in vmxfer.c: */
void vmxfer(cnr *cp);
void chkdata(unsigned char *buf, short len, unsigned char *chk);
void excmmd(cnr *cp);
void setrc(short code, cnr *cp);
void rdopen(cnr *cp);
void rdclose(cnr *cp);
void rdblock(cnr *cp);
void typstat(cnr *cp);
void wropen(cnr *cp);
void wrclose(cnr *cp);
int xfprtclose(cnr *cp);
void wrblock(cnr *cp);
void exitcmd(cnr *cp);
void verscmd(cnr *cp);
void xlcmd(cnr *cp);
void trtime(cnr *cp);
void getrd(unsigned char *macname, cnr *cp);
pascal Boolean onlydata(FileParam *_pb);
void getwr(unsigned char *suggid, unsigned char *macname, cnr *cp);
unsigned char *currvname(cnr *cp);
void getinfo(long *fsize, struct DateTimeRec *fdate, cnr *cp);
OSErr settime(struct DateTimeRec *fdate, struct mbhdr *mh, cnr *cp);
void xfrst(cnr *cp);
void xfinit(cnr *cp);
void datachr(short *rdoff, unsigned char c, cnr *cp);
long chartolong(unsigned char *str);
OSErr mbwrite(long *count, unsigned char *data,
unsigned long offset, cnr *cp);
OSErr prtwrite(long *count, unsigned char *addr, cnr *cp);
void prtline(unsigned char *s, cnr *cp);
void maketitles(unsigned char *tt1, unsigned char *tt2,
int *tt1len, cnr *cp);
/* functions defined in writescr.c: */
void invldscr(cnr *cp);
void checkpos(cnr *);
void writescr(char printflag, cnr *cp);
void newcur(cnr *cp);
void newchar(short offset, unsigned char value,
short atr, short fattr, cnr *cp);
void dchar(short offset, short len, short fattr, cnr *cp);
void seldchar(short offset, short len, short selattr,
short fattr, cnr *cp);
void newwrite(cnr *cp);
void dfield(short offset, short count, short fattr, short cattr,
char g, cnr *cp);
void calctrim(short *offset, short *count, cnr *cp);
void getdspatr(unsigned char *atr_result,
unsigned char *trim_result,
RGBColor *color_result,
register unsigned short cattr,
register unsigned short fattr,
cnr *cp);
void txtfield(short offset, short count, unsigned char attrbits,
char prot, char fieldfont, cnr *cp);
void myDrawText(register unsigned char *textBuf,
register short firstByte,
register short byteCount,
short font, char prot, cnr *cp);
void ALADrawText(unsigned char *textBuf,
short firstByte, short byteCount);
short alatype(unsigned char *s);
void movechr(short n);
void drawdc(register unsigned char dc,
register unsigned char c);
void statline(cnr *cp);
void newstat(cnr *cp);
void beep(cnr *cp);
OSErr mybeep(cnr *cp);
void sndend(void);
void drawcurs(char restore, cnr *cp);
void defcursor(short cx, short cy, cnr *cp);
void justGrowIcon(char rgnok, cnr *cp);
void xfGrowIcon(cnr *cp);
void InitClip(cnr *cp);
void mousesel(short function, short location,
char doubleflag, cnr *cp);
void invsel(selcoord *r, cnr *cp);
/* functions defined in writesf.c: */
void writesf(unsigned char *cmd,
short len,
char init,
cnr *cp);
void intwsf(unsigned char id,
short len,
unsigned char *data,
char *rdflag,
cnr *cp);
void wsfrpq(short len, unsigned char *data, char shortrsp, cnr *cp);
void wsfadd(short num, short *len, char shortrsp, cnr *cp);
void def_ua(uareply *resptr, cnr *cp);
void def_ip(ipreply *resptr, cnr *cp);
void writegf(unsigned char *data, short len, cnr *cp);
void grpparse(unsigned char c, cnr *cp);
void exdraw(unsigned char *opdata, short len, cnr *cp);
void grcparse(unsigned char c, cnr *cp);
void exctl(unsigned char *opdata, short len, cnr *cp);
void clrpict(cnr *cp);
void initpict(cnr *cp);
void showpict(cnr *cp);
short sx(short x, cnr *cp);
short sy(short y, cnr *cp);
void myLineTo(short x, short y, cnr *cp);
void myDrawString(unsigned char *s, cnr *cp);
void setrgb(short *newcolor, unsigned char code, cnr *cp);
void setmark(unsigned char *mark, unsigned char code, cnr *cp);
void setpat(PatPtr pat, unsigned char code, cnr *cp);
void setmixmode(short mode, cnr *cp);
void openpictfile(cnr *cp);
void closepictfile(cnr *cp);
pascal void myStdPutPic(Ptr dataPtr, unsigned short byteCount);
void hexdump(unsigned char *data, short len, cnr *cp);
/* functions defined in writetm.c: */
void writetm(unsigned char *cmd, short len, char init, cnr *cp);
void clrscn(cnr *cp);
void intwcc(unsigned char ew, unsigned char wcc, cnr *cp);
void endwcc(cnr *cp);
void checkfmt(cnr *cp);
void intsf(unsigned char attr, cnr *cp);
void intsba(unsigned char a1, unsigned char a2, cnr *cp);
void intic(cnr *cp);
void intpt(cnr *cp);
void intra(unsigned char a1, unsigned char a2,
unsigned char c, unsigned char g, cnr *cp);
void inteua(unsigned char a1, unsigned char a2, cnr *cp);
void intsfe(unsigned char *field, unsigned char pairs, cnr *cp);
void intmf(unsigned char *field, unsigned char pairs, cnr *cp);
void intsa(unsigned char type, unsigned char value, cnr *cp);
unsigned short intpairs(unsigned short atr, unsigned char *field,
unsigned char pairs, cnr *cp);
void intdata(unsigned char code, unsigned char geflag, cnr *cp);
void setnull(cnr *cp);
short cvtadr(unsigned char a1, unsigned char a2, cnr *cp);
void orderinit(void);
void setrectsel(short offset1, short offset2, cnr *cp);
void settextsel(short offset1, short offset2, char invert, cnr *cp);
void addfieldsel(cnr *cp);
void resetsel(cnr *cp);
void checksel(cnr *cp);
void addsel(short *downloc, cnr *cp);
void wordadj(short *loc1, short *loc2, char endadj, cnr *cp);
short atspace(short loc, cnr *cp);